#include <iostream>
using namespace std;
#include <string>
#include <set>

// set容器排序，存放自定义数据类型

class Person
{
public:
    string name;
    int age;
    
    Person(string name, int age)
    {
        this->name = name;
        this->age = age;
    }
};

class MyCompare
{
public:
    bool operator()(const Person& p1, const Person& p2)
    {
        //按照年龄 降序
        return p1.age > p2.age;
    }
};

void test1()
{
    // 自定义的数据类型 都会指定排序规则
    set<Person, MyCompare>s;

    // 创建Person对象
    Person p1("刘备", 65);
    Person p2("关羽", 35);
    Person p3("张飞", 43);
    Person p4("赵云", 24);

    s.insert(p1);
    s.insert(p2);
    s.insert(p3);
    s.insert(p4);

    for (set<Person>::iterator it = s.begin();it != s.end();it++)
    {
        cout << "姓名：" << (*it).name << "  年龄：" << (*it).age << endl;
    }
    
}

int main()
{
    test1();
    return 0;
}